#!/bin/bash

# 颜色定义
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
RED='\033[0;31m'
BLUE='\033[0;34m'
NC='\033[0m' # No Color

# 输出标题
echo -e "${BLUE}================================${NC}"
echo -e "${GREEN}面部检测推流系统 (SRS WebRTC)${NC}"
echo -e "${BLUE}================================${NC}"

# 检查docker和docker-compose是否已安装
if ! command -v docker &> /dev/null; then
    echo -e "${RED}错误: docker 未安装!${NC}"
    echo -e "${YELLOW}请先安装 docker 然后再运行此脚本${NC}"
    exit 1
fi

if ! command -v docker compose &> /dev/null; then
    echo -e "${RED}错误: docker compose 未安装!${NC}"
    echo -e "${YELLOW}请先安装 docker compose 然后再运行此脚本${NC}"
    exit 1
fi

# 启动SRS服务器
echo -e "${GREEN}正在启动SRS服务器...${NC}"
cd server && docker compose up -d

# 等待服务器启动
echo -e "${YELLOW}等待SRS服务器启动...${NC}"
sleep 5

# 检查SRS服务器是否成功启动
if docker ps | grep srs-server; then
    echo -e "${GREEN}✓ SRS服务器已成功启动${NC}"
else
    echo -e "${RED}✗ SRS服务器启动失败${NC}"
    exit 1
fi

# 检查npm是否已安装
if ! command -v npm &> /dev/null; then
    echo -e "${RED}错误: npm 未安装!${NC}"
    echo -e "${YELLOW}请先安装 Node.js 和 npm 然后再运行此脚本${NC}"
    exit 1
fi

# 启动前端应用
echo -e "${GREEN}正在启动前端应用...${NC}"
cd ../frontend && npm install && npm start &
FRONTEND_PID=$!

echo -e "${BLUE}================================${NC}"
echo -e "${GREEN}系统已启动!${NC}"
echo -e "${YELLOW}SRS服务器已在Docker中运行${NC}"
echo -e "${YELLOW}前端应用进程: $FRONTEND_PID${NC}"
echo -e "${BLUE}================================${NC}"
echo -e "浏览器访问 http://localhost:3000 使用应用"
echo -e "按 Ctrl+C 停止前端应用"

# 等待用户中断
trap "kill $FRONTEND_PID 2>/dev/null; echo -e '\n${YELLOW}前端应用已停止${NC}'; echo -e '${YELLOW}SRS服务器仍在运行，如需停止请运行 cd server && docker compose down${NC}'; exit 0" INT
wait 